Просмотр полной версии : Событие по нажатии двух клавиш клавиатуры.
Здравствуйте, Уважаемые Эксперты.
Возможно кроссбраузерно отследить событие нажатия (Ctrl или Shift или Alt) + какая либо буква?
Или события данной категории целиом заняты ОС и браузерами, и для JavaScript недоступны?
Спасибо.
Илья Кантор
15.02.2008, 22:18
Не все заняты. Те, которые свободны - можно.. Еще зависит от того, какие плагины в браузере стоят.
Вы рекомендуете, или сами применяли организацию некоторых функций сайта посредством горячих клавиш? Я, конечно, понимаю, что в 99.9% этого делать не стоит, я имею ввиду исключительные случаи.
В силу того, что плагины для браузеров пишутся самые разные, я подумываю эту идею оставить.
Илья Кантор
19.02.2008, 12:59
Использовал горячие клавиши иногда как дубликат функций. Использовать можно, только лучше избегать очевидно занятых комбинаций.
Dmitry A. Soshnikov
25.02.2008, 13:49
lancer,
Возможно кроссбраузерно отследить событие нажатия (Ctrl или Shift или Alt) + какая либо буква?
конечно, объект события несет информацию и о shift'e и о ctrl'e и об alt'e.
<script type="text/javascript">
document.onkeydown = function(e) {
e = e || window.event;
if (e.shiftKey && e.keyCode == 65) {
alert('Shift + A');
}
return true;
}
</script>
Илья Кантор,
Те, которые свободны - можно..
можно и те, которые "заняты" (например, Crtl + S - обрабатывается браузером как "сохранить документ", но если предотвратить дефолтные события и их баблинг - то можно назначить свой Ctrl + S. Аналогично с остальными "занятыми" комбинациями).
Можно-можно. Например, в википедии ловятся вообще Shift+Esc+T и т.п.
Очень извиняюсь, что не по теме, никто не подскажет, если через кнопку и скрипт, в ячейку таблицы загружать с помощью innerHTML картинку то:
она будет подгружаться (ИМЕЕТСЯ ВВИДУ В НАЧАЛЕ, ВМЕСТЕ СО СТРАНИЦЕЙ) при загрузке страницы, или потом, при нажатии кнопки.
при загрузке страницы, или потом, при нажатии кнопки
Ну, если код подгрузки картинки указан в обработчике события click на кнопке, то при нажатии кнопки.
Если вы хотите, чтобы она загрузилась при загрузке страницы, а потом сразу показалась, то тогда код ее загрузки надо поместить в window.onload.
Что-то вроде
window.onload = function() {
var myimg = new Image();
myimg.src = "путь/к/картинке.jpg"; //картинка загружена, но нигде не показывается
}
а потом
mybutton.onclick = function() {
mytd.innerHTML = myimg;
}
Londeren
14.05.2008, 19:03
во всех браузерах код <script type="text/javascript">
document.onkeydown = function(e) {
e = e || window.event;
if (e.shiftKey && e.keyCode == 65) {
alert('Shift + A');
}
return true;
}
</script>
отлично ловит данное событие
пытался таким же образом ловить ctrl+enter, в ie6 у меня не вышло, подскажите плиз код рабочий для этого дела
murloc knight
08.04.2016, 14:32
пожалуйста помогите я делаю игру и мне надо чтоб 2 игрока ходили одновременно но при зажатии 2 клавиш считываитса только нажатие 1 клавиши и ходит только 1 игрок
вопрос :
как сделать так чтоб при зажатии 2 клавиш 2 функции выполнялись одновременно ? :help:
Дмитрий_Skilltek
04.01.2017, 08:52
Отследить нажатие любых клавиш одновременно , можно даже сто отследить вместе)))
keys={ //кей коды клавиш
w:87,
a:65,
s:83,
d:68
}
key={}
onkeydown=function(e){
key[e.keyCode]=true;
}
onkeyup=function(e){
key[e.keyCode]=false;
}
setInterval(function(){
if(key[keys.w] && key[keys.a] && key[keys.d]){ //если нажата клавиша w , a и d
alert("Сработало!!!");
}
},1)
но после алерта нужно обновлять клавиши , а то отпускание клавиши не отследится ...
keys={ //кей коды клавиш
w:87,
a:65,
s:83,
d:68
}
key={}
onkeydown=function(e){
key[e.keyCode]=true;
}
onkeyup=function(e){
key[e.keyCode]=false;
}
setInterval(function(){
if(key[keys.w] && key[keys.a] && key[keys.d]){ //если нажата клавиша w , a и d
key.w=key.a=key.d=false;
alert("Сработало!!!");
}
},1)
Дмитрий_Skilltek
08.01.2017, 14:11
пожалуйста помогите я делаю игру и мне надо чтоб 2 игрока ходили одновременно но при зажатии 2 клавиш считываитса только нажатие 1 клавиши и ходит только 1 игрок
вопрос :
как сделать так чтоб при зажатии 2 клавиш 2 функции выполнялись одновременно ? :help:
Javascript:
key={}
onkeydown=function(e){
key[e.keyCode]= true; //клавиша которая нажата равна true
}
onkeyup=function(e){
key[e.keyCode]= false; // клавиша которая отпущена равна false
}
Проверка
if(key[87]){
// W - нажата
}
Но этот код записывает ключи клавиш(W-87) , чтобы провенить K-узнай её ключ :
onkeydown=function(e){
alert(e.keyCode); //чтоб узнать ключ
}
vBulletin® v3.6.7, Copyright ©2000-2025, Jelsoft Enterprises Ltd. Перевод: zCarot